iT邦幫忙

0

[筆記] Nextcloud on debian 11

  • 分享至 

  • xImage
  •  

昨天幫某客戶架設nextcloud vm的筆記,貼上來備忘

設定好固定IP

編輯/etc/apt/sources.list新增以下內容
註解cdrom:
deb http://deb.debian.org/debian bullseye main contrib
deb-src http://deb.debian.org/debian bullseye main contrib

deb http://deb.debian.org/debian-security/ bullseye-security main contrib
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib

deb http://deb.debian.org/debian bullseye-updates main contrib
deb-src http://deb.debian.org/debian bullseye-updates main contrib


sudo apt update
sudo apt install software-properties-common dirmngr -y
sudo apt -y remove php php-{cli,xml,zip,curl,gd,cgi,mysql,mbstring}
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
sudo apt -y install mariadb-server mariadb-client lsb-release apt-transport-https
ca-certificates software-properties-common php8.2 vim
php8.2-{bcmath,xml,fpm,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi,dev}
apache2 libapache2-mod-php8.2 curl unzip libsmbclient-dev libmagickwand-dev smbclient php-pear

sudo mysql_secure_installation
Enter current password for root (enter for none): 第一次設定,直接按 Enter 鍵即可
Switch to unix_socket authentication [Y/n]: 切換到 unix_socket 身份驗證,沒有強制使用,輸入 n。
Change root password? [Y/n] 按 Y 設定資料庫 root 密碼
New password: 輸入新密碼
Re-enter new password: 再次輸入新密碼
Remove anonymous users? [Y/n] 按 Y 移除anonymous users
Disallow root login remotely? [Y/n] 按 Y 關閉 root 遠端登入
Remove test database and access to it? [Y/n] 按 Y 移除 test 資料庫
Reload privilege tables now? [Y/n] 按 Y 重新載入資料表權限

sudo mysql -u root -p
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'StrongDBP@SSwo$d';
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
QUIT

sudo apt -y install wget curl unzip
wget https://download.nextcloud.com/server/releases/latest.zip
(目前最新版是27版, 如果要使用Activities for shared file downloads稽核User的檔案下載紀錄,請改下載安裝26版 https://download.nextcloud.com/server/releases/nextcloud-26.0.7.zip)
mv latest.zip nextcloud.zip
unzip nextcloud.zip
sudo mv nextcloud /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo sudo chmod -R 755 /var/www/html/nextcloud

sudo vi /etc/php/8.2/apache2/php.ini
修改 outpuh_buffering = Off

sudo vi /etc/apache2/site-available/000-default.conf
修改 DocumentRoot /var/www/html/nextcloud
sudo vi /etc/apache2/site-available/default-ssl.conf
修改 DocumentRoot /var/www/html/nextcloud
sudo vi /etc/apache2/conf-available/security.conf
加上 Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains"
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params
sudo systemctl restart apache2
(需要上Let's encrypt憑證的請自行Google)

sudo apt update
sudo apt -y install libsmbclient-dev libmagickwand-dev smbclient php8.2-dev php-pear
sudo pecl install smbclient
sudo pecl install inotify
sudo echo "extension=smbclient.so" > /etc/php/8.2/mods_available/smbclient.ini
sudo echo "extension=inotify.so" > /etc/php/8.2/mods_available/inotify.ini
cd /etc/php/8.2/apache/conf.d/
sudo ln -s /etc/php/8.2/mods_available/smbclient.ini 20-smbclient.ini
sudo ln -s /etc/php/8.2/mods_available/inotify.ini 20-inotify.ini
sudo systemctl restart apache2

在/var/www/html/nextcloud/config/config.php中的trust_domains修改如下
'trusted_domains' = >
array (
0 => 'localhost',
1 => '這台nextcloud server的FQDN',
)
sudo systemctl restart apache2

進入Nextcloud管理介面中的外部儲存
建立一個SMB 主機位置, 填入自訂資料夾名稱(在nextcloud中看到的名稱), 檔案伺服器IP或FQDN, 該伺服器的分享資料夾名稱, 如果需要指定子資料夾請一併輸入, NETBIOS網域名稱, 認證選擇"登入資訊, 儲存於工作階段"
(在下不才,希望有熱心大大改為Kerberos認證)

Microsoft AD整合
在AD中建立一個nextcloud專用群組,把獲准使用nextcloud的人員加入此群組中
以系統管理員身分登入nextcloud
到應用程式中啟用:LDAP user and group backend
[伺服器頁籤]
指定AD DC的IP Address & LDAP Port 389
設定Administrator權限密碼
由於AD可能規模龐大, 請準確指定帳戶存放位置,搜尋的基礎路徑BASE DN
比方說有一個foo.com.tw的網域,有一個OU是FOO_HQ,使用者帳戶和群組都在裡面:
OU=FOO_HQ,DC=foo,DC=com,DC=tw
測試BASE DN通過後按繼續
[使用者頁籤]
選擇person物件
群組選擇剛剛建立的nextcloud專用群組
按下驗證設計並計算使用者數,如果數量與nextcloud群組內成員數量一致則代表成功,按繼續
[登入屬性頁籤]
基本上只要勾選"LDAP/AD 使用者名稱"後按繼續
[群組頁籤]
可以維持空白,也可以依實際需要設定
接著到使用者管理畫面,稍等nextcloud應可以看到AD使用者帳號匯入了


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言